____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
ÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻÂŻ
Intervallarithmetik
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
top
Intervallarithmetik bezeichnet in der Mathematik eine Methodik zur automatisierten FehlerabschĂ€tzung auf Basis abgeschlossener Intervalle. Dabei werden nicht genau bekannte reelle GröĂen x {\displaystyle x} betrachtet, die aber durch zwei Zahlen a {\displaystyle a} und b {\displaystyle b} eingegrenzt werden können. Dabei kann x {\displaystyle x} zwischen a {\displaystyle a} und b {\displaystyle b} liegen oder auch einen der beiden Werte annehmen. Dieser Bereich entspricht mathematisch gesehen dem Intervall [ a , b ] {\displaystyle [a,b]} . Eine Funktion f {\displaystyle f} , die von einem solchen unsicheren x {\displaystyle x} abhĂ€ngt, kann nicht genau ausgewertet werden. Es ist schlieĂlich nicht bekannt, welcher Zahlenwert innerhalb von [ a , b ] {\displaystyle [a,b]} fĂŒr x {\displaystyle x} eigentlich eingesetzt werden mĂŒsste. Stattdessen wird ein möglichst kleines Intervall [ c , d ] {\displaystyle [c,d]} bestimmt, das gerade die möglichen Funktionswerte f ( x ) {\displaystyle f(x)} fĂŒr alle x â â [ a , b ] {\displaystyle x\in [a,b]} enthĂ€lt. Durch gezielte AbschĂ€tzung der Endpunkte c {\displaystyle c} und d {\displaystyle d} erhĂ€lt man eine neue Funktion, die wiederum Intervalle auf Intervalle abbildet.
Dieses Konzept eignet sich unter anderem zur Behandlung von Rundungsfehlern direkt wĂ€hrend der Berechnung und falls Unsicherheiten in der Kenntnis der exakten Werte physikalischer und technischer Parameter vorliegen. Letztere ergeben sich oft aus Messfehlern und Bauteil-Toleranzen. AuĂerdem kann Intervallarithmetik dabei helfen, verlĂ€ssliche Lösungen von Gleichungen und Optimierungsproblemen zu erhalten.
Als Beispiel soll hier die Berechnung des Körpermasseindex (BMI von engl. Body Mass Index) betrachtet werden. Der BMI ist die Körpermasse in Kilogramm geteilt durch das Quadrat der KörpergröĂe in Metern. Zur Illustration soll die Gewichtsbestimmung (eigentlich Massebestimmung) mit Hilfe einer Badezimmerwaage erfolgen, bei der das Gewicht auf ein Kilogramm genau abgelesen werden kann. Es werden also niemals Zwischenwerte bestimmt â etwa 79,6 kg oder 80,3 kg â, sondern auf ganze Zahlen gerundete Angaben. Dabei ist es natĂŒrlich sehr unwahrscheinlich, dass man wirklich exakt 80,0 kg wiegt, wenn dies angezeigt wird. Bei ĂŒblicher Rundung auf den nĂ€chstliegenden Gewichtswert liefert die Waage 80 kg fĂŒr jedes Gewicht zwischen 79,5 kg und 80,5 kg. Den entsprechenden Bereich aller reellen Zahlen, die gröĂer oder gleich 79,5 und gleichzeitig kleiner oder gleich 80,5 sind, kann einfach als Intervall [ 79 , 5 ; 80 , 5 ] {\displaystyle [79{,}5;80{,}5]} aufgeschrieben werden. Um Verwechslungen zu vermeiden, setzt man meistens einen Punkt statt eines Kommas als Dezimaltrennzeichen.
FĂŒr einen Menschen, der 80 kg wiegt und 1,80 m groĂ ist, liegt der BMI bei ungefĂ€hr 24,7. Bei einem Gewicht von 79,5 kg und gleicher KörpergröĂe mĂŒsste aber nur ein Wert von 24,5 angenommen werden, wohingegen 80,5 kg schon fast 24,9 entsprechen. Der tatsĂ€chliche BMI liegt also in dem Bereich [ 24 , 5 ; 24 , 9 ] {\displaystyle [24{,}5;24{,}9]} . In diesem Fall kann der Fehler in der Praxis zwar noch vernachlĂ€ssigt werden, jedoch ist das nicht bei allen Rechnungen der Fall. Beispielsweise schwankt das Gewicht auch im Laufe eines Tages, so dass der BMI hier durchaus zwischen 24 (noch normalgewichtig) und 25 (schon ĂŒbergewichtig) variieren kann. Ohne detaillierte Rechnung können aber nicht immer von vornherein Aussagen darĂŒber getroffen werden, ob ein Fehler letztendlich groĂ genug ist, um maĂgeblichen Einfluss zu haben.
In der Intervallarithmetik wird der Bereich möglicher Ergebnisse ausdrĂŒcklich berechnet. Vereinfacht gesagt, rechnet man nicht mehr mit Zahlen, sondern mit Intervallen, die nicht genau bekannte Werte reprĂ€sentieren. Ăhnlich wie ein Fehlerbalken um einen Messwert drĂŒckt ein Intervall das AusmaĂ der Unsicherheit bezĂŒglich der zu berechnenden GröĂe aus. HierfĂŒr werden einfache Rechenoperationen, wie die Grundrechenarten oder trigonometrische Funktionen, fĂŒr das Rechnen mit Intervallen neu definiert, um Ă€uĂere Grenzen eines gesuchten Wertebereiches zu erhalten.
Contents
âą EinfĂŒhrung
âą Grundrechenarten
âą Notation
âą Anwendung
âą Toleranzanalyse
âą Fuzzy-Arithmetik
âą Geschichtliches
âą Patente
âą Siehe auch
âą Referenzen
âą Literatur
âą Weblinks
âą Quellen
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
EinfĂŒhrung
Das Hauptaugenmerk bei der Intervallarithmetik liegt darauf, auf möglichst einfache Art und Weise obere und untere Schranken fĂŒr den Wertebereich einer Funktion in einer oder mehreren Variablen zu bestimmen. Dabei mĂŒssen diese Schranken nicht unbedingt dem Supremum bzw. Infimum entsprechen, da die genaue Berechnung dieser Werte oft zu schwierig ist. (Es lĂ€sst sich zeigen, dass diese Aufgabenstellung im Allgemeinen NP-schwer ist.)
Ăblicherweise beschrĂ€nkt man sich auf die Behandlung abgeschlossener, reeller Intervalle, also Mengen der Form
[ a , b ] = { x â â R | a ††x ††b } {\displaystyle [a,b]=\{x\in \mathbb {R} \,|\,a\leq x\leq b\}} ,
wobei auch a = â â â â {\displaystyle a={-\infty }} und b = â â {\displaystyle b={\infty }} zulĂ€ssig sind. Dabei entsprechen [ â â â â , b ] {\displaystyle [{-\infty },b]} und [ a , â â ] {\displaystyle [a,{\infty }]} den meist halboffen geschriebenen Intervallen, die alle reellen Zahlen kleiner oder gleich b {\displaystyle b} bzw. gröĂer oder gleich a {\displaystyle a} umfassen. Entsprechend bezeichnet das Intervall [ â â â â , â â ] {\displaystyle [{-\infty },{\infty }]} die gesamte reelle Achse.
Wie beim klassischen Rechnen mit Zahlen muss zunÀchst einmal definiert werden, wie die arithmetischen Operationen und elementaren Funktionen auf Intervalle anzuwenden sind. Komplexere Funktionen können dann aus diesen Grundelementen zusammengesetzt werden (Lit.: Kulisch, 1989).
Grundrechenarten
Zu ErlĂ€uterung wird nochmal auf das Beispiel vom Anfang zurĂŒckgegriffen. Bei der Bestimmung des Körpermasseindex spielt neben dem Gewicht auch die KörpergröĂe eine Rolle. Diese wird ĂŒblicherweise nur in ganzen Zentimetern gemessen werden: eine Angabe der KörpergröĂe von 1,80 Meter bedeutet also eigentlich eine KörpergröĂe irgendwo zwischen 1,795 m und 1,805 m. Diese Ungenauigkeit muss zusĂ€tzlich zu der Schwankungsbreite beim Gewicht, das zwischen 79,5 kg und 80,5 kg liegt, eingerechnet werden. FĂŒr den BMI muss nun wie gesagt die Körpermasse in Kilogramm durch das Quadrat der KörpergröĂe in Metern geteilt werden. Sowohl fĂŒr 79,5 kg und 1,795 m als auch fĂŒr 80,5 kg und 1,805 m ergibt sich dafĂŒr ungefĂ€hr 24,7. Es muss nun aber auch berĂŒcksichtigt werden, dass die fragliche Person möglicherweise nur 1,795 m groĂ ist bei einem Gewicht von 80,5 kg â oder auch 1,805 m bei 79,5 kg. Auch die Kombinationen aller möglichen Zwischenwerte mĂŒssen in die Betrachtung eingehen. Mit Hilfe der im Folgenden festgelegten Intervallarithmetik kann der intervallwertige BMI
[ 79 , 5 ; 80 , 5 ] / ( [ 1,795 ; 1,805 ] ) 2 = [ 24 , 4 ; 25 , 0 ] {\displaystyle [79{,}5;80{,}5]/([1{,}795;1{,}805])^{2}=[24{,}4;25{,}0]\,}
tatsÀchlich ausgerechnet werden.
Eine Operation âš âš o p â© â© {\displaystyle {\langle \!\mathrm {op} \!\rangle }} zwischen zwei Intervallen, wobei âš âš o p â© â© {\displaystyle {\langle \!\mathrm {op} \!\rangle }} beispielsweise fĂŒr Addition oder Multiplikation steht, muss die Bedingung
[ x 1 , x 2 ] âš âš o p â© â© [ y 1 , y 2 ] = { x âš âš o p â© â© y | x â â [ x 1 , x 2 ] und y â â [ y 1 , y 2 ] } {\displaystyle [x_{1},x_{2}]{\,\langle \!\mathrm {op} \!\rangle \,}[y_{1},y_{2}]=\{x{\,\langle \!\mathrm {op} \!\rangle \,}y\,|\,x\in [x_{1},x_{2}]\,{\text{und}}\,y\in [y_{1},y_{2}]\}}
erfĂŒllen. FĂŒr die vier Grundrechenarten ergibt sich daraus
[ x 1 , x 2 ] âš âš o p â© â© [ y 1 , y 2 ] = [ min ( x 1 âš âš o p â© â© y 1 , x 1 âš âš o p â© â© y 2 , x 2 âš âš o p â© â© y 1 , x 2 âš âš o p â© â© y 2 ) , max ( x 1 âš âš o p â© â© y 1 , x 1 âš âš o p â© â© y 2 , x 2 âš âš o p â© â© y 1 , x 2 âš âš o p â© â© y 2 ) ] , {\displaystyle {\begin{matrix}[x_{1},x_{2}]{\,\langle \!\mathrm {op} \!\rangle \,}[y_{1},y_{2}]&=&{\left[\min(x_{1}{\langle \!\mathrm {op} \!\rangle }y_{1},x_{1}{\langle \!\mathrm {op} \!\rangle }y_{2},x_{2}{\langle \!\mathrm {op} \!\rangle }y_{1},x_{2}{\langle \!\mathrm {op} \!\rangle }y_{2}),\right.}\\&&{\left.\;\max(x_{1}{\langle \!\mathrm {op} \!\rangle }y_{1},x_{1}{\langle \!\mathrm {op} \!\rangle }y_{2},x_{2}{\langle \!\mathrm {op} \!\rangle }y_{1},x_{2}{\langle \!\mathrm {op} \!\rangle }y_{2})\right]}\,\mathrm {,} \end{matrix}}}
falls x âš âš o p â© â© y {\displaystyle x{\,\langle \!\mathrm {op} \!\rangle \,}y} zulĂ€ssig ist fĂŒr alle x â â [ x 1 , x 2 ] {\displaystyle x\in [x_{1},x_{2}]} und y â â [ y 1 , y 2 ] {\displaystyle y\in [y_{1},y_{2}]} .
FĂŒr praktische Anwendungen lĂ€sst sich dies noch weiter vereinfachen:
âą Addition: [ x 1 , x 2 ] + [ y 1 , y 2 ] = [ x 1 + y 1 , x 2 + y 2 ] {\displaystyle [x_{1},x_{2}]+[y_{1},y_{2}]=[x_{1}+y_{1},x_{2}+y_{2}]}
âą Subtraktion: [ x 1 , x 2 ] â â [ y 1 , y 2 ] = [ x 1 â â y 2 , x 2 â â y 1 ] {\displaystyle [x_{1},x_{2}]-[y_{1},y_{2}]=[x_{1}-y_{2},x_{2}-y_{1}]}
âą Multiplikation: [ x 1 , x 2 ] â
â
[ y 1 , y 2 ] = [ min ( x 1 y 1 , x 1 y 2 , x 2 y 1 , x 2 y 2 ) , max ( x 1 y 1 , x 1 y 2 , x 2 y 1 , x 2 y 2 ) ] {\displaystyle [x_{1},x_{2}]\cdot [y_{1},y_{2}]=[\min(x_{1}y_{1},x_{1}y_{2},x_{2}y_{1},x_{2}y_{2}),\max(x_{1}y_{1},x_{1}y_{2},x_{2}y_{1},x_{2}y_{2})]}
âą Division: [ x 1 , x 2 ] / [ y 1 , y 2 ] = [ x 1 , x 2 ] â
â
( 1 / [ y 1 , y 2 ] ) {\displaystyle [x_{1},x_{2}]/[y_{1},y_{2}]=[x_{1},x_{2}]\cdot (1/[y_{1},y_{2}])} , wobei 1 / [ y 1 , y 2 ] = [ 1 / y 2 , 1 / y 1 ] {\displaystyle 1/[y_{1},y_{2}]=[1/y_{2},1/y_{1}]} falls 0 â â [ y 1 , y 2 ] {\displaystyle 0\notin [y_{1},y_{2}]} .
FĂŒr die Division durch ein Intervall, das die Null enthĂ€lt, definiert man zunĂ€chst einmal
1 / [ y 1 , 0 ] = [ â â â â , 1 / y 1 ] {\displaystyle 1/[y_{1},0]=[-\infty ,1/y_{1}]} und 1 / [ 0 , y 2 ] = [ 1 / y 2 , â â ] {\displaystyle 1/[0,y_{2}]=[1/y_{2},\infty ]} .
FĂŒr y 1 < 0 < y 2 {\displaystyle y_{1}<0<y_{2}} gilt 1 / [ y 1 , y 2 ] = [ â â â â , 1 / y 1 ] âȘ âȘ [ 1 / y 2 , â â ] {\displaystyle 1/[y_{1},y_{2}]=[-\infty ,1/y_{1}]\cup [1/y_{2},\infty ]} , so dass man eigentlich 1 / [ y 1 , y 2 ] = [ â â â â , â â ] {\displaystyle 1/[y_{1},y_{2}]=[-\infty ,\infty ]} setzten mĂŒsste. Dadurch verliert man allerdings die LĂŒcke ( 1 / y 1 , 1 / y 2 ) {\displaystyle (1/y_{1},1/y_{2})} und damit wertvolle Informationen. Ăblicherweise rechnet man daher mit den Teilmengen [ â â â â , 1 / y 1 ] {\displaystyle [-\infty ,1/y_{1}]} und [ 1 / y 2 , â â ] {\displaystyle [1/y_{2},\infty ]} einzeln weiter.
Weil innerhalb einer Intervallrechnung auch mehrere solcher Aufspaltungen auftreten können, ist es manchmal sinnvoll, das Rechnen mit sogenannten Multi-Intervallen der Form â â i = 1 l [ x i 1 , x i 2 ] {\displaystyle \textstyle \bigcup _{i=1}^{l}[x_{i1},x_{i2}]} zu systematisieren. Die entsprechende Multi-Intervall-Arithmetik pflegt dann eine disjunkte Menge von Intervallen und sorgt dann beispielsweise auch dafĂŒr, sich ĂŒberschneidende Intervalle zu vereinigen (Lit.: Dreyer, 2005).
Da man eine Zahl r â â R {\displaystyle r\in \mathbb {R} } als das Intervall [ r , r ] {\displaystyle [r,r]} interpretieren kann, erhĂ€lt man sofort eine Vorschrift zur Kombination von intervall- und reellwertigen GröĂen.
Mit Hilfe dieser Definitionen lĂ€sst sich bereits der Wertebereich einfacher Funktionen, wie f ( a , b , x ) = a â
â
x + b {\displaystyle f(a,b,x)=a\cdot x+b} bestimmen. Setzt man beispielsweise a = [ 1 , 2 ] {\displaystyle a=[1,2]} , b = [ 5 , 7 ] {\displaystyle b=[5,7]} und x = [ 2 , 3 ] {\displaystyle x=[2,3]} , so ergibt sich
f ( a , b , x ) = ( [ 1 , 2 ] â
â
[ 2 , 3 ] ) + [ 5 , 7 ] = [ 1 â
â
2 , 2 â
â
3 ] + [ 5 , 7 ] = [ 7 , 13 ] {\displaystyle f(a,b,x)=([1,2]\cdot [2,3])+[5,7]=[1\cdot 2,2\cdot 3]+[5,7]=[7,13]} .
Interpretiert man f ( a , b , x ) {\displaystyle f(a,b,x)} als Funktion einer Variablen x {\displaystyle x} mit intervallwertigen Parametern a {\displaystyle a} und b {\displaystyle b} , dann lÀsst sich die Menge aller Nullstellen dieser Funktionenschar leicht bestimmen. Es gilt dann
f ( [ 1 , 2 ] , [ 5 , 7 ] , x ) = ( [ 1 , 2 ] â
â
x ) + [ 5 , 7 ] = 0 â â [ 1 , 2 ] â
â
x = [ â â 7 , â â 5 ] â â x = [ â â 7 , â â 5 ] / [ 1 , 2 ] {\displaystyle f([1,2],[5,7],x)=([1,2]\cdot x)+[5,7]=0\Leftrightarrow [1,2]\cdot x=[-7,-5]\Leftrightarrow x=[-7,-5]/[1,2]} ,
die möglichen Nullstellen liegen also im Intervall [ â â 7 ; â â 2 , 5 ] {\displaystyle [-7;-2{,}5]} .
Wie im obigen Beispiel kann die Multiplikation von Intervallen oft auf die Multiplikation nur zweier Zahlen zurĂŒckgefĂŒhrt werden. Es gilt nĂ€mlich
[ x 1 , x 2 ] â
â
[ y 1 , y 2 ] = [ x 1 â
â
y 1 , x 2 â
â
y 2 ] {\displaystyle [x_{1},x_{2}]\cdot [y_{1},y_{2}]=[x_{1}\cdot y_{1},x_{2}\cdot y_{2}]} , falls x 1 , y 1 â„ â„ 0 {\displaystyle x_{1},y_{1}\geq 0} .
Die Multiplikation lĂ€sst sich hier als FlĂ€chenbestimmung eines Rechtecks mit variierenden KantenlĂ€ngen interpretieren. Das intervallwertige Ergebnis deckt dann alle Werte von der kleinst- bis zu gröĂtmöglichen FlĂ€che ab.
Entsprechendes gilt, wenn eines der beiden Intervalle ganz im nicht-positiven und das andere ganz im nicht-negativen Bereich der reellen Achse liegt. Generell muss bei der Multiplikation noch beachtet werden, dass das Ergebnis sofort auf [ â â â â , â â ] {\displaystyle [{-\infty },{\infty }]} gesetzt werden muss, falls unbestimmte Werte, wie 0 â
â
â â {\displaystyle 0\cdot \infty } auftreten. Dies tritt z. B. bei einer Division auf, bei der ZĂ€hler und Nenner beide Null enthalten.
Notation
Um intervallwertige GröĂen leichter in mathematischen Formeln zu erkennen, zweckentfremdet man die eckigen Klammern zur âMarkierungâ.
Dementsprechend bezeichnet [ x ] ⥠⥠[ x 1 , x 2 ] {\displaystyle [x]\equiv [x_{1},x_{2}]} ein Intervall und die Menge aller reellen Intervalle wird als
[ R ] := { [ x 1 , x 2 ] | x 1 ††x 2 und x 1 , x 2 â â R âȘ âȘ { â â â â , â â } } {\displaystyle [\mathbb {R} ]:={\big \{}\,[x_{1},x_{2}]\,|\,x_{1}\leq x_{2}\,{\text{und}}\,x_{1},x_{2}\in \mathbb {R} \cup \{-\infty ,\infty \}{\big \}}}
abgekĂŒrzt. FĂŒr eine Box oder einen Vektor von Intervallen ( [ x ] 1 , ⊠⊠, [ x ] n ) â â [ R ] n {\displaystyle {\big (}[x]_{1},\ldots ,[x]_{n}{\big )}\in [\mathbb {R} ]^{n}} verwendet man zusĂ€tzlich fetten Schriftschnitt: [ x ] {\displaystyle [\mathbf {x} ]} .
Bei einer derart kompakten Notation ist zu beachten, dass [ x ] {\displaystyle [x]} nicht mit einem sogenannten uneigentlichen Intervall [ x 1 , x 1 ] {\displaystyle [x_{1},x_{1}]} verwechselt wird, bei dem obere und untere Grenze ĂŒbereinstimmen.
Elementare Funktionen
Um auch Funktionen mit Intervallmethoden behandeln zu können, deren Terme sich nicht aus den Grundrechenarten ergeben, muss man auch noch weitere elementare Funktionen fĂŒr Intervalle neu definieren. Dabei nutzt man vorhandene Monotonieeigenschaften aus.
FĂŒr monotone Funktionen in einer Variablen lĂ€sst sich der Wertebereich ebenfalls leicht bestimmen. Ist f : : R â â R {\displaystyle f\colon \mathbb {R} \rightarrow \mathbb {R} } monoton steigend oder fallend in einem Intervall [ x 1 , x 2 ] {\displaystyle [x_{1},x_{2}]} , dann gilt fĂŒr alle Werte y 1 , y 2 â â [ x 1 , x 2 ] {\displaystyle y_{1},y_{2}\in [x_{1},x_{2}]} mit y 1 ††y 2 {\displaystyle y_{1}\leq y_{2}} die Ungleichung
f ( y 1 ) ††f ( y 2 ) {\displaystyle f(y_{1})\leq f(y_{2})} , bzw. f ( y 1 ) ℠℠f ( y 2 ) {\displaystyle f(y_{1})\geq f(y_{2})} .
Den Wertebereich des Intervalls [ y 1 , y 2 ] â â [ x 1 , x 2 ] {\displaystyle [y_{1},y_{2}]\subseteq [x_{1},x_{2}]} erhĂ€lt man durch Auswertung der Funktion an den Endpunkten y 1 {\displaystyle y_{1}} und y 2 {\displaystyle y_{2}} :
f ( [ y 1 , y 2 ] ) = [ min { f ( y 1 ) , f ( y 2 ) } , max { f ( y 1 ) , f ( y 2 ) } ] {\displaystyle f([y_{1},y_{2}])=\left[\min {\big \{}f(y_{1}),f(y_{2}){\big \}},\max {\big \{}f(y_{1}),f(y_{2}){\big \}}\right]} .
Daher lassen sich folgende Intervallisierungen elementarer Funktionen leicht definieren:
âą Exponentialfunktion: a [ x 1 , x 2 ] = [ a x 1 , a x 2 ] {\displaystyle a^{[x_{1},x_{2}]}=[a^{x_{1}},a^{x_{2}}]} , fĂŒr a > 1 {\displaystyle a>1} ,
âą Logarithmus: log a ⥠⥠( [ x 1 , x 2 ] ) = [ log a ⥠⥠x 1 , log a ⥠⥠x 2 ] {\displaystyle \log _{a}{\big (}{[x_{1},x_{2}]}{\big )}=[\log _{a}{x_{1}},\log _{a}{x_{2}}]} , fĂŒr positive Intervalle [ x 1 , x 2 ] {\displaystyle [x_{1},x_{2}]} und a > 1 {\displaystyle a>1}
Es ist auĂerdem noch wichtig, den Wertebereich fĂŒr gerade Potenzen bestimmen zu können. Im Gegensatz zur ĂŒblichen Numerik ist es hier nicht sinnvoll, die Berechnung auf die Multiplikation zurĂŒckzufĂŒhren. Beispielsweise bewegt sich x n {\displaystyle x^{n}} fĂŒr x â â [ â â 1 , 1 ] {\displaystyle x\in [-1,1]} innerhalb des Intervalles [ 0 , 1 ] {\displaystyle [0,1]} , wenn n = 2 , 4 , 6 , ⊠⊠{\displaystyle n=2,4,6,\ldots } . Versucht man [ â â 1 , 1 ] n {\displaystyle [-1,1]^{n}} aber durch Multiplikationen der Form [ â â 1 , 1 ] â
â
⊠⊠â
â
[ â â 1 , 1 ] {\displaystyle [-1,1]\cdot \ldots \cdot [-1,1]} zu bestimmen, so erhĂ€lt man in jedem Fall als Ergebnis [ â â 1 , 1 ] {\displaystyle [-1,1]} .
Sinnvoller ist es hier, die Parabel x n {\displaystyle x^{n}} als Zusammensetzung einer monoton fallenden (fĂŒr x < 0 {\displaystyle x<0} ) und einer monoton steigenden Funktion (fĂŒr x > 0 {\displaystyle x>0} ) zu betrachten. Es gilt also fĂŒr gerade n â â N {\displaystyle n\in \mathbb {N} } :
âą [ x 1 , x 2 ] n = [ x 1 n , x 2 n ] {\displaystyle {[x_{1},x_{2}]}^{n}=[x_{1}^{n},x_{2}^{n}]} , falls x 1 â„ â„ 0 {\displaystyle x_{1}\geq 0} ,
⹠[ x 1 , x 2 ] n = [ x 2 n , x 1 n ] {\displaystyle {[x_{1},x_{2}]}^{n}=[x_{2}^{n},x_{1}^{n}]} , falls x 2 ††0 {\displaystyle x_{2}\leq 0} ,
âą [ x 1 , x 2 ] n = [ 0 , max { x 1 n , x 2 n } ] {\displaystyle {[x_{1},x_{2}]}^{n}=[0,\max\{x_{1}^{n},x_{2}^{n}\}]} , sonst.
Allgemeiner kann man sagen, dass es fĂŒr stĂŒckweise monotone Funktionen ausreicht, diese an den Endpunkten x 1 , x 2 {\displaystyle x_{1},x_{2}} eines Intervalls [ x 1 , x 2 ] {\displaystyle [x_{1},x_{2}]} , sowie an den in [ x 1 , x 2 ] {\displaystyle [x_{1},x_{2}]} enthaltenen sogenannten kritischen Punkten auszurechnen. Die kritischen Punkte entsprechen hierbei den Stellen, an denen sich die Monotonieeigenschaften Ă€ndern.
Dies lĂ€sst sich z. B. auf Sinus und Kosinus anwenden, die zusĂ€tzlich an Stellen ( 1 / 2 + n ) â
â
Ï Ï {\displaystyle \left({}^{1}\!\!/\!{}_{2}+{n}\right)\cdot \pi } bzw. n â
â
Ï Ï {\displaystyle {n}\cdot \pi } fĂŒr alle n â â Z {\displaystyle n\in \mathbb {Z} } ausgewertet werden mĂŒssen. Hierbei spielen höchstens fĂŒnf Punkte eine Rolle, da man als Ergebnis sofort [ â â 1 , 1 ] {\displaystyle [-1,1]} festlegen kann, wenn das Eingangsintervall mindestens eine ganze Periode enthĂ€lt. AuĂerdem mĂŒssen Sinus und Kosinus lediglich an den Randpunken neu evaluiert werden, da die entsprechenden Werte an den kritischen Stellen â nĂ€mlich â1, 0, +1 â vorab abgespeichert werden können.
Intervallerweiterungen allgemeiner Funktionen
Im Allgemeinen findet man fĂŒr beliebige Funktionen keine derart einfache Beschreibung des Wertebereiches. Man kann diese aber oft auf Intervalle ausdehnen. Wenn f : : R n â â R {\displaystyle f\colon \mathbb {R} ^{n}\rightarrow \mathbb {R} } eine Funktion ist, die einen reellwertigen Vektor auf eine reelle Zahl abbildet, dann nennt man [ f ] : [ R ] n â â [ R ] {\displaystyle [f]:[\mathbb {R} ]^{n}\rightarrow [\mathbb {R} ]} eine Intervallerweiterung von f {\displaystyle f} , wenn gilt
[ f ] ( [ x ] ) â â { f ( y ) | y â â [ x ] } {\displaystyle [f]([\mathbf {x} ])\supseteq \{f(\mathbf {y} )|\mathbf {y} \in [\mathbf {x} ]\}} .
Dies definiert die Intervallerweiterung nicht eindeutig. So sind beispielsweise sowohl [ f ] ( [ x 1 , x 2 ] ) = [ e x 1 , e x 2 ] {\displaystyle [f]([x_{1},x_{2}])=[e^{x_{1}},e^{x_{2}}]} als auch [ g ] ( [ x 1 , x 2 ] ) = [ â â â â , â â ] {\displaystyle [g]([x_{1},x_{2}])=[{-\infty },{\infty }]} zulĂ€ssige Erweiterungen der Exponentialfunktion. Da möglichst scharfe Erweiterungen gewĂŒnscht sind, also solche, die so genau wie möglich den gesuchten Wertebereich approximieren, wird man in diesem Fall eher [ f ] {\displaystyle [f]} wĂ€hlen, da sie sogar den exakten Bereich bestimmt.
Die natĂŒrliche Intervallerweiterung erhĂ€lt man, indem man in der Funktionsvorschrift f ( x 1 , ⯠⯠, x n ) {\displaystyle f(x_{1},\cdots ,x_{n})} die Grundrechenarten und elementaren Funktionen durch ihre intervallwertigen Ăquivalente ersetzt.
Die Taylor-Intervallerweiterung (vom Grad k {\displaystyle k} ) einer k + 1 {\displaystyle k+1} mal differenzierbaren Funktion f {\displaystyle f} ist definiert durch
[ f ] ( [ x ] ) := f ( y ) + â â i = 1 k 1 i ! D i f ( y ) â
â
( [ x ] â â y ) i + [ r ] ( [ x ] , [ x ] , y ) {\displaystyle [f]([\mathbf {x} ]):=f(\mathbf {y} )+\sum _{i=1}^{k}{\frac {1}{i!}}\mathrm {D} ^{i}f(\mathbf {y} )\cdot ([\mathbf {x} ]-\mathbf {y} )^{i}+[r]([\mathbf {x} ],[\mathbf {x} ],\mathbf {y} )} ,
fĂŒr ein y â â [ x ] {\displaystyle \mathbf {y} \in [\mathbf {x} ]} ,
wobei D i f ( y ) {\displaystyle \mathrm {D} ^{i}f(\mathbf {y} )} das Differential i {\displaystyle i} -ter Ordnung von f {\displaystyle f} am Punkt y {\displaystyle \mathbf {y} } und [ r ] {\displaystyle [r]} eine Intervallerweiterung des Taylorrestgliedes
r ( x , Ο Ο , y ) = 1 ( k + 1 ) ! D k + 1 f ( Ο Ο ) â
â
( x â â y ) k + 1 {\displaystyle r(\mathbf {x} ,\xi ,\mathbf {y} )={\frac {1}{(k+1)!}}\mathrm {D} ^{k+1}f(\xi )\cdot (\mathbf {x} -\mathbf {y} )^{k+1}}
bezeichnet.
Da der Vektor Ο Ο {\displaystyle \xi } zwischen x {\displaystyle \mathbf {x} } und y {\displaystyle \mathbf {y} } mit x , y â â [ x ] {\displaystyle \mathbf {x} ,\mathbf {y} \in [\mathbf {x} ]} liegt, lĂ€sst sich Ο Ο {\displaystyle \xi } ebenfalls durch [ x ] {\displaystyle [\mathbf {x} ]} abschĂ€tzen. Ăblicherweise wĂ€hlt man fĂŒr y {\displaystyle \mathbf {y} } den Mittelpunkt des Intervallvektors und die natĂŒrliche Intervallerweiterung zur AbschĂ€tzung des Restgliedes.
Den Spezialfall der Taylor-Intervallerweiterung vom Grad k = 0 {\displaystyle k=0} bezeichnet man auch als Mittelwert-Intervallerweiterung. FĂŒr eine Intervallerweiterung der Jacobi-Matrix [ J f ] ( [ x ] ) {\displaystyle [J_{f}](\mathbf {[x]} )} erhĂ€lt man hier
[ f ] ( [ x ] ) := f ( y ) + [ J f ] ( [ x ] ) â
â
( [ x ] â â y ) {\displaystyle [f]([\mathbf {x} ]):=f(\mathbf {y} )+[J_{f}](\mathbf {[x]} )\cdot ([\mathbf {x} ]-\mathbf {y} )} .
Eine nichtlineare Funktion kann so durch lineare Funktionen eingegrenzt werden.
Intervallverfahren
Die Methoden der klassischen Numerik können nicht direkt fĂŒr die Intervallarithmetik umgesetzt werden, da hierbei AbhĂ€ngigkeiten meist nicht berĂŒcksichtigt werden.
Gerundete Intervallarithmetik
Um effizient mit Intervallen rechnen zu können, muss eine konkrete Implementierung kompatibel zum Rechnen mit Gleitkommazahlen sein. Die oben definierten Operationen basieren auf exakter Arithmetik, die bei schnellen numerischen Lösungsverfahren nicht zur VerfĂŒgung steht. Der Wertebereich der Funktion f ( x , y ) = x + y {\displaystyle f(x,y)=x+y} fĂŒr x â â [ 0 , 1 ; 0 , 8 ] {\displaystyle x\in [0{,}1;0{,}8]} und y â â [ 0 , 06 ; 0 , 08 ] {\displaystyle y\in [0{,}06;0{,}08]} wĂ€re beispielsweise [ 0 , 16 ; 0 , 88 ] {\displaystyle [0{,}16;0{,}88]} . FĂŒhrt man die gleiche Rechnung mit einstelliger PrĂ€zision durch, so wĂŒrde das Ergebnis ĂŒblicherweise zu [ 0 , 2 ; 0 , 9 ] {\displaystyle [0{,}2;0{,}9]} gerundet. Da aber [ 0 , 2 ; 0 , 9 ] â [ 0 , 16 ; 0 , 88 ] {\displaystyle [0{,}2;0{,}9]\not \supseteq [0{,}16;0{,}88]} wĂŒrde dieser Ansatz den Grundprinzipien der Intervallarithmetik widersprechen, da ein Teil des Wertebereiches von f ( [ 0 , 1 ; 0 , 8 ] , [ 0 , 06 ; 0 , 08 ] ) {\displaystyle f([0{,}1;0{,}8],[0{,}06;0{,}08])} verloren geht. Stattdessen ist hier die nach auĂen gerundete Lösung [ 0 , 1 ; 0 , 9 ] {\displaystyle [0{,}1;0{,}9]} vorzuziehen.
Die Norm IEEE 754 definiert neben Standarddarstellungen binĂ€rer Gleitkommazahlen auch genaue Verfahren fĂŒr die DurchfĂŒhrung von Rundungen. Demnach muss ein zu IEEE 754 konformes System dem Programmierer neben dem mathematischen Runden (zur nĂ€chsten Gleitkommazahl) noch weitere Rundungsmodi bereitstellen: immer aufrunden, immer abrunden und Rundung gegen 0 (Ergebnis betragsmĂ€Ăig verkleinern).
Das benötigte nach auĂen Runden lĂ€sst sich also durch entsprechendes Umschalten der Rundungseinstellungen des Prozessors beim Berechnen von oberer und unterer Grenze bewerkstelligen. Alternativ kann dies durch Hinzuaddition eines geeigneten schmalen Intervalls [ Δ Δ 1 , Δ Δ 2 ] {\displaystyle [\varepsilon _{1},\varepsilon _{2}]} erreicht werden.
AbhĂ€ngigkeitsproblem und EinhĂŒllungseffekt
Das sogenannte AbhĂ€ngigkeitsproblem ist ein Haupthindernis bei der Anwendung der Intervallarithmetik. Obwohl der Wertebereich der elementaren arithmetischen Operationen und Funktionen mit Intervallmethoden sehr genau bestimmt werden kann, gilt dies nicht mehr fĂŒr zusammengesetzte Funktionen. Falls ein intervallwertiger Parameter mehrfach in einer Rechnung auftritt, wird jedes Auftreten unabhĂ€ngig voneinander behandelt. Dies fĂŒhrt zu einer ungewollten AufblĂ€hung der resultierenden Intervalle.
Zur Illustration sei eine Funktion f {\displaystyle f} durch den Ausdruck f ( x ) = x 2 + x {\displaystyle f(x)=x^{2}+x} gegeben. Der Wertebereich dieser Funktion ĂŒber dem Intervall [ â â 1 , 1 ] {\displaystyle [-1,1]} betrĂ€gt eigentlich [ â â 1 / 4 , 2 ] {\displaystyle [-1/4,2]} . Um die natĂŒrliche Intervallerweiterung zu erhalten, rechnet man aber [ â â 1 , 1 ] 2 + [ â â 1 , 1 ] = [ 0 , 1 ] + [ â â 1 , 1 ] = [ â â 1 , 2 ] {\displaystyle [-1,1]^{2}+[-1,1]=[0,1]+[-1,1]=[-1,2]} , was einen etwas gröĂeren Bereich ergibt. In der Tat berechnet man eigentlich Infimum und Supremum der Funktion h ( x , y ) = x 2 + y {\displaystyle h(x,y)=x^{2}+y} ĂŒber x , y â â [ â â 1 , 1 ] {\displaystyle x,y\in [-1,1]} . Hier wĂŒrde man also besser eine alternative Formulierung fĂŒr f {\displaystyle f} verwenden, die die Variable x {\displaystyle x} nur einmal verwendet. In diesem Fall kann man den Ausdruck f ( x ) = x 2 + x {\displaystyle f(x)=x^{2}+x} einfach durch quadratische ErgĂ€nzung zu f ( x ) = ( x + 1 2 ) 2 â â 1 4 {\displaystyle f(x)=\left(x+{\frac {1}{2}}\right)^{2}-{\frac {1}{4}}} umformen.
Dann liefert die entsprechende Intervallrechnung
( [ â â 1 , 1 ] + 1 2 ) 2 â â 1 4 = [ â â 1 2 , 3 2 ] 2 â â 1 4 = [ 0 , 9 4 ] â â 1 4 = [ â â 1 4 , 2 ] {\displaystyle \left([-1,1]+{\frac {1}{2}}\right)^{2}-{\frac {1}{4}}=\left[-{\frac {1}{2}},{\frac {3}{2}}\right]^{2}-{\frac {1}{4}}=\left[0,{\frac {9}{4}}\right]-{\frac {1}{4}}=\left[-{\frac {1}{4}},2\right]}
auch den richtigen Wertebereich.
Im Allgemeinen lÀsst sich zeigen, dass man tatsÀchlich den genauen Wertebereich erhÀlt, wenn jede Variable nur einmal auftaucht. Allerdings lÀsst sich nicht jede Funktion geeignet auflösen.
Die durch das AbhĂ€ngigkeitsproblem verursachte ĂberschĂ€tzung des Wertebereiches kann so weit gehen, dass das Resultat einen derart groĂen Bereich umfasst, der keine sinnvollen SchlĂŒsse mehr zulĂ€sst.
Eine zusĂ€tzliche VergröĂerung des Wertebereichs ergibt sich aus dem EinhĂŒllen von Bereichen, die nicht die Form eines Intervallvektors haben. Die Lösungsmenge des linearen Systems
x = y x = p {\displaystyle {\begin{matrix}x&=&y\\x&=&p\end{matrix}}} fĂŒr p â â [ â â 1 , 1 ] {\displaystyle p\in [-1,1]}
ist genau die Strecke zwischen den Punkten ( â â 1 , â â 1 ) {\displaystyle (-1,-1)} und ( 1 , 1 ) {\displaystyle (1,1)} . Intervallmethoden liefern hier aber im besten Fall das Quadrat [ â â 1 , 1 ] Ă Ă [ â â 1 , 1 ] {\displaystyle [-1,1]\times [-1,1]} , das die tatsĂ€chliche Lösung einhĂŒllt (EinhĂŒllungs- oder âWrappingâ-Effekt).
Lineare Intervallsysteme
Ein lineares Intervallsystem besteht aus einer intervallwertigen Matrix [ A ] â â [ R ] n Ă Ă m {\displaystyle [\mathbf {A} ]\in [\mathbb {R} ]^{n\times m}} und einem Intervallvektor [ b ] â â [ R ] n {\displaystyle [\mathbf {b} ]\in [\mathbb {R} ]^{n}} . Gesucht ist dann eine möglichst schmale Box [ x ] â â [ R ] m {\displaystyle [\mathbf {x} ]\in [\mathbb {R} ]^{m}} , die alle Vektoren x â â R m {\displaystyle \mathbf {x} \in \mathbb {R} ^{m}} enthĂ€lt, fĂŒr die es ein Paar ( A , b ) {\displaystyle (\mathbf {A} ,\mathbf {b} )} mit A â â [ A ] {\displaystyle \mathbf {A} \in [\mathbf {A} ]} und b â â [ b ] {\displaystyle \mathbf {b} \in [\mathbf {b} ]} gibt, das die Gleichung
A â
â
x = b {\displaystyle \mathbf {A} \cdot \mathbf {x} =\mathbf {b} }
erfĂŒllt.
FĂŒr quadratische Systeme â also fĂŒr n = m {\displaystyle n=m} â lĂ€sst sich ein solcher Intervallvektor [ x ] {\displaystyle [\mathbf {x} ]} , der alle möglichen Lösungen enthĂ€lt, sehr einfach mit dem Intervall-GauĂ-Verfahren bestimmen. HierfĂŒr ersetzt man die numerischen Operationen, die bei dem aus der linearen Algebra bekannten gauĂschen Eliminationsverfahren auftauchen, durch ihre Intervallversionen. Da allerdings wĂ€hrend der Abarbeitung dieser Methode die intervallwertigen EintrĂ€ge von [ A ] {\displaystyle [\mathbf {A} ]} und [ b ] {\displaystyle [\mathbf {b} ]} mehrfach in die Rechnung eingehen, leidet dieser Ansatz sehr stark an dem AbhĂ€ngigkeitsproblem. Folglich bietet sich der Intervall-GauĂ nur fĂŒr grobe erste AbschĂ€tzungen an, die zwar die gesamte Lösungsmenge enthalten, aber auch einen sehr groĂen Bereich auĂerhalb davon.
Eine grobe Lösung [ x ] {\displaystyle [\mathbf {x} ]} kann oft durch eine Intervallisierung des GauĂ-Seidel-Verfahrens verbessert werden. Diese ist folgendermaĂen motiviert: Die i {\displaystyle i} -te Zeile der intervallwertigen linearen Gleichung
( [ a 11 ] ⯠⯠[ a 1 n ] âź âź â± â± âź âź [ a n 1 ] ⯠⯠[ a n n ] ) â
â
( x 1 âź âź x n ) = ( [ b 1 ] âź âź [ b n ] ) {\displaystyle {\begin{pmatrix}{[a_{11}]}&\cdots &{[a_{1n}]}\\\vdots &\ddots &\vdots \\{[a_{n1}]}&\cdots &{[a_{nn}]}\end{pmatrix}}\cdot {\begin{pmatrix}{x_{1}}\\\vdots \\{x_{n}}\end{pmatrix}}={\begin{pmatrix}{[b_{1}]}\\\vdots \\{[b_{n}]}\end{pmatrix}}}
lÀsst sich nach der Variablen x i {\displaystyle x_{i}} auflösen, falls die Division 1 / [ a i i ] {\displaystyle 1/[a_{ii}]} erlaubt ist. Es gilt demnach gleichzeitig
x j â â [ x j ] {\displaystyle x_{j}\in [x_{j}]} und x j â â [ b i ] â â â â k â j [ a i k ] â
â
[ x k ] [ a i j ] {\displaystyle x_{j}\in {\frac {[b_{i}]-\sum \limits _{k\not =j}[a_{ik}]\cdot [x_{k}]}{[a_{ij}]}}} .
Man kann also nun [ x j ] {\displaystyle [x_{j}]} durch
[ x j ] â© â© [ b i ] â â â â k â j [ a i k ] â
â
[ x k ] [ a i j ] {\displaystyle [x_{j}]\cap {\frac {[b_{i}]-\sum \limits _{k\not =j}[a_{ik}]\cdot [x_{k}]}{[a_{ij}]}}}
ersetzen, und so den Vektor [ x ] {\displaystyle [\mathbf {x} ]} elementweise verbessern. Da das Verfahren effizienter fĂŒr diagonaldominante Matrizen ist, versucht man oft statt des Systems [ A ] â
â
x = [ b ] , {\displaystyle [\mathbf {A} ]\cdot \mathbf {x} =[\mathbf {b} ]{\text{,}}} die durch Multiplikation mit einer geeigneten reellen Matrix M {\displaystyle \mathbf {M} } entstandene Matrixgleichung
( M â
â
[ A ] ) â
â
x = M â
â
[ b ] {\displaystyle (\mathbf {M} \cdot [\mathbf {A} ])\cdot \mathbf {x} =\mathbf {M} \cdot [\mathbf {b} ]}
zu lösen. WĂ€hlt man beispielsweise M = A â â 1 {\displaystyle \mathbf {M} =\mathbf {A} ^{-1}} fĂŒr die Mittelpunktsmatrix A â â [ A ] {\displaystyle \mathbf {A} \in [\mathbf {A} ]} , so ist M â
â
[ A ] {\displaystyle \mathbf {M} \cdot [\mathbf {A} ]} eine Ă€uĂere NĂ€herung der Einheitsmatrix.
FĂŒr die oben genannten Methoden gilt allerdings, dass sie nur dann gut funktionieren, wenn die Breite der vorkommenden Intervalle hinreichend klein ist. FĂŒr breitere Intervalle kann es sinnvoll sein, ein Intervall-lineares System auf eine endliche (wenn auch groĂe) Anzahl reellwertiger linearer Systeme zurĂŒckzufĂŒhren. Sind nĂ€mlich alle Matrizen A â â [ A ] {\displaystyle \mathbf {A} \in [\mathbf {A} ]} invertierbar, so ist es vollkommen ausreichend, alle möglichen Kombinationen an (oberen und unteren) Endpunkten der vorkommenden Intervalle zu betrachten. Die resultierenden Teilprobleme können dann mit herkömmlichen numerischen Methoden gelöst werden. Intervallarithmetik wird lediglich noch benutzt, um Rundungsfehler zu bestimmen.
Dieser Ansatz ist allerdings nur fĂŒr Systeme kleinerer Dimension möglich, da bei einer vollbesetzten n Ă Ă n {\displaystyle n\times n} Matrix schon 2 n 2 {\displaystyle 2^{n^{2}}} reelle Matrizen invertiert werden mĂŒssen, mit jeweils 2 n {\displaystyle 2^{n}} Vektoren fĂŒr die rechte Seite. Dieser Ansatz wurde von JiĆĂ Rohn noch weitergefĂŒhrt und verbessert.cite-ref-1[1]
Intervall-Newton Verfahren
Eine Intervallvariante des Newton-Verfahrens zur Bestimmung der Nullstellen in einem Intervallvektor [ x ] {\displaystyle [\mathbf {x} ]} lĂ€sst sich einfach aus der Mittelwert-Erweiterung ableiten (Lit.: Hansen, 1992). FĂŒr einen unbekannten Vektor z â â [ x ] {\displaystyle \mathbf {z} \in [\mathbf {x} ]} gilt fĂŒr ein festes y â â [ x ] {\displaystyle \mathbf {y} \in [\mathbf {x} ]} , dass
f ( z ) â â f ( y ) + [ J f ] ( [ x ] ) â
â
( z â â y ) {\displaystyle f(\mathbf {z} )\in f(\mathbf {y} )+[J_{f}](\mathbf {[x]} )\cdot (\mathbf {z} -\mathbf {y} )} .
FĂŒr eine Nullstelle z {\displaystyle \mathbf {z} } ist f ( z ) = 0 {\displaystyle f(z)=0} , und somit muss
f ( y ) + [ J f ] ( [ x ] ) â
â
( z â â y ) = 0 {\displaystyle f(\mathbf {y} )+[J_{f}](\mathbf {[x]} )\cdot (\mathbf {z} -\mathbf {y} )=0} .
erfĂŒllt sein. Man erhĂ€lt also z â â y â â [ J f ] ( [ x ] ) â â 1 â
â
f ( y ) {\displaystyle \mathbf {z} \in \mathbf {y} -[J_{f}](\mathbf {[x]} )^{-1}\cdot f(\mathbf {y} )} . Eine Ă€uĂere AbschĂ€tzung von [ J f ] ( [ x ] ) â â 1 â
â
f ( y ) ) {\displaystyle [J_{f}](\mathbf {[x]} )^{-1}\cdot f(\mathbf {y} ))} kann hierbei durch eines der linearen Verfahren bestimmt werden.
In jedem Newton-Schritt wird nun ein grober Startwert [ x ] â â [ R ] n {\displaystyle [\mathbf {x} ]\in [\mathbb {R} ]^{n}} durch [ x ] â© â© ( y â â [ J f ] ( [ x ] ) â â 1 â
â
f ( y ) ) {\displaystyle [\mathbf {x} ]\cap \left(\mathbf {y} -[J_{f}](\mathbf {[x]} )^{-1}\cdot f(\mathbf {y} )\right)} ersetzt und so iterativ verbessert. Im Gegensatz zum klassischen Verfahren nĂ€hert sich diese Methode von auĂen den Nullstellen. Daher ist garantiert, dass das Ergebnis immer alle Nullstellen im Startwert enthĂ€lt. Umgekehrt hat man bewiesen, dass f {\displaystyle f} keine Nullstelle in [ x ] {\displaystyle [\mathbf {x} ]} hat, wenn der Newton-Schritt die leere Menge zurĂŒckliefert.
Das Verfahren konvergiert gegen eine Menge, die alle Nullstellen (innerhalb der Startregion) enthÀlt. Durch in diesem Fall vorhandene Divisionen durch Null entstehen oft mehrere Intervallvektoren, die die Nullstellen voneinander trennen. Diese Trennung ist nicht immer vollstÀndig und kann dann durch Bisektion forciert werden.
Als Beispiel betrachte man die Funktion f ( x ) = x 2 â â 2 {\displaystyle f(x)=x^{2}-2} , den Startwert [ x ] = [ â â 2 , 2 ] {\displaystyle [x]=[-2,2]} und den Punkt y = 0 {\displaystyle y=0} . Man hat dann J f ( x ) = 2 x {\displaystyle J_{f}(x)=2\,x} und der erste Newton-Schritt ist gegeben durch
[ â â 2 , 2 ] â© â© ( 0 â â 1 2 â
â
[ â â 2 , 2 ] ( 0 â â 2 ) ) = [ â â 2 , 2 ] â© â© ( [ â â â â ; â â 0 , 5 ] âȘ âȘ [ 0 , 5 ; â â ] ) {\displaystyle [-2,2]\cap \left(0-{\frac {1}{2\cdot [-2,2]}}(0-2)\right)=[-2,2]\cap {\Big (}[{-\infty };-0{,}5]\cup [0{,}5;{\infty }]{\Big )}} .
Es gilt also fĂŒr eine Nullstelle x â â [ â â 2 ; â â 0 , 5 ] âȘ âȘ [ 0 , 5 ; 2 ] {\displaystyle x\in [-2;-0{,}5]\cup {\big [}0{,}5;2{\big ]}} . Weitere Newtonschritte werden dann jeweils auf x â â [ â â 2 ; â â 0 , 5 ] {\displaystyle x\in [-2;-0{,}5]} und [ 0 , 5 ; 2 ] {\displaystyle [0{,}5;2]} getrennt angewendet. Diese konvergieren zu beliebig kleinen Intervallen um â â 2 {\displaystyle -{\sqrt {2}}} und + 2 {\displaystyle +{\sqrt {2}}} .
Das Intervall-Newton-Verfahren lĂ€sst sich auch ohne weiteres bei dicken Funktionen anwenden, also Funktionen wie g ( x ) = x 2 â â [ 2 , 3 ] {\displaystyle g(x)=x^{2}-[2,3]} , die bereits dann Intervalle zurĂŒckliefern, wenn man reelle Zahlen einsetzt. Die Lösung besteht dann aus mehreren Intervallen [ â â 3 , â â 2 ] âȘ âȘ [ 2 , 3 ] {\displaystyle \left[-{\sqrt {3}},-{\sqrt {2}}\right]\cup \left[{\sqrt {2}},{\sqrt {3}}\right]} .
Bisektion und Ăberdeckungen
Die verschiedenen Intervallmethoden liefern nur Ă€uĂerst konservative AbschĂ€tzungen eines jeweils gesuchten Bereiches, da AbhĂ€ngigkeiten zwischen den intervallwertigen GröĂen nicht ausreichend berĂŒcksichtigt werden. Das AbhĂ€ngigkeitsproblem spielt aber eine desto geringere Rolle, je dĂŒnner die Intervalle sind.
Ăberdeckt man einen Intervallvektor [ x ] {\displaystyle [\mathbf {x} ]} durch kleinere Boxen [ x 1 ] , ⯠⯠, [ x k ] , {\displaystyle [\mathbf {x} _{1}],\cdots ,[\mathbf {x} _{k}]{\text{,}}} so dass [ x ] = â â i = 1 k [ x i ] , {\displaystyle \textstyle [\mathbf {x} ]=\bigcup _{i=1}^{k}[\mathbf {x} _{i}]{\text{,}}} dann gilt fĂŒr den Wertebereich f ( [ x ] ) = â â i = 1 k f ( [ x i ] ) . {\displaystyle \textstyle f([\mathbf {x} ])=\bigcup _{i=1}^{k}f([\mathbf {x} _{i}]){\text{.}}} FĂŒr die oben genannten Intervallerweiterungen gilt dann [ f ] ( [ x ] ) â â â â i = 1 k [ f ] ( [ x i ] ) {\displaystyle \textstyle [f]([\mathbf {x} ])\supseteq \bigcup _{i=1}^{k}[f]([\mathbf {x} _{i}])} . Da [ f ] ( [ x ] ) {\displaystyle [f]([\mathbf {x} ])} oft eine echte Obermenge der rechten Seite ist, erhĂ€lt man somit meist eine verbesserte AbschĂ€tzung.
Eine solche Ăberdeckung kann zum einen durch Bisektion generiert werden, indem man besonders dicke Elemente [ x i 1 , x i 2 ] {\displaystyle [x_{i1},x_{i2}]} des Intervallvektors [ x ] = ( [ x 11 , x 12 ] , ⯠⯠, [ x n 1 , x n 2 ] ) {\displaystyle [\mathbf {x} ]=([x_{11},x_{12}],\cdots ,[x_{n1},x_{n2}])} beispielsweise in der Mitte teilt und durch zwei Intervalle [ x i 1 , ( x i 1 + x i 2 ) / 2 ] {\displaystyle [x_{i1},(x_{i1}+x_{i2})/2]} und [ ( x i 1 + x i 2 ) / 2 , x i 2 ] {\displaystyle [(x_{i1}+x_{i2})/2,x_{i2}]} ersetzt. Sollte das daraus folgende Resultat immer noch nicht geeignet sein, kann sukzessive weiter zerlegt werden. Hierbei gilt allerdings zu beachten, dass durch r {\displaystyle r} geteilte Vektorelemente eine Ăberdeckung aus 2 r {\displaystyle 2^{r}} Intervallvektoren entsteht, was den Rechenaufwand natĂŒrlich stark erhöht.
Bei sehr breiten Intervallen kann es sogar sinnvoll sein, alle Intervalle gleich in mehrere Teilintervalle mit (kleiner) konstanter Breite zu zerlegen (âMincingâ). Damit spart man die Zwischenrechnung fĂŒr die einzelnen Bisektionsschritte. Beide Herangehensweisen sind allerdings nur fĂŒr Probleme niedriger Dimension geeignet.
Anwendung
Die Intervallarithmetik kommt auf verschiedenen Gebieten zum Einsatz, um GröĂen zu behandeln, fĂŒr die keine genauen Zahlenwerte festgelegt werden können (Lit.: Jaulin u. a., 2001).
Rundungsfehleranalyse
Die Intervallarithmetik wird bei der Fehleranalyse angewendet, um Kontrolle ĂŒber die bei jeder Berechnung auftretenden Rundungsfehler zu bekommen. Der Vorteil der Intervallarithmetik liegt darin, dass man nach jeder Operation ein Intervall erhĂ€lt, welches das Ergebnis sicher einschlieĂt. Aus dem Abstand der Intervallgrenzen kann man den aktuellen Berechnungsfehler direkt ablesen:
Fehler = abs ⥠⥠( a â â b ) {\displaystyle \operatorname {abs} (a-b)} fĂŒr gegebenes Intervall [ a , b ] {\displaystyle [a,b]} .
Intervallanalyse bietet hierbei keinen Ersatz fĂŒr die klassischen Methoden zur Fehlerreduktion, wie Pivotisierung, sondern ergĂ€nzt diese lediglich.
Toleranzanalyse
Bei der Simulation technischer und physikalischer Prozesse treten oft Parameter auf, denen keine exakten Zahlenwerte zugeordnet werden können. So unterliegt der Produktionsprozess technischer Bauteile gewissen Toleranzen, so bestimmte Parameter innerhalb bestimmter Intervalle schwanken können. AuĂerdem können viele Naturkonstanten nicht mit beliebiger Genauigkeit gemessen werden (Lit.: Dreyer, 2005).
Wird das Verhalten eines solchen toleranzbehafteten Systems beispielsweise durch eine Gleichung f ( x , p ) = 0 {\displaystyle f(\mathbf {x} ,\mathbf {p} )=0} , fĂŒr p â â [ p ] {\displaystyle \mathbf {p} \in [\mathbf {p} ]} und Unbekannten x {\displaystyle \mathbf {x} } , beschrieben, dann kann die Menge aller möglichen Lösungen
{ x | â â p â â [ p ] , f ( x , p ) = 0 } {\displaystyle \{\mathbf {x} \,|\,\exists \mathbf {p} \in [\mathbf {p} ],f(\mathbf {x} ,\mathbf {p} )=0\}} ,
durch Intervallmethoden abgeschĂ€tzt werden. Diese stellen hier eine Alternative zur klassischen Fehlerrechnung dar. Im Gegensatz zu punktbasierten Methoden, wie der Monte-Carlo-Simulation, stellt die verwendete Methodik sicher, dass keine Teile des Lösungsgebietes ĂŒbersehen werden. Allerdings entspricht das Ergebnis immer einer Worst-Case-Analyse fĂŒr gleichverteilte Fehler, andere Wahrscheinlichkeitsverteilungen sind nicht möglich.
Fuzzy-Arithmetik
Intervallarithmetik kann auch dazu verwendet werden, beliebige Zugehörigkeitsfunktionen fĂŒr unscharfe Mengen wie sie in der Fuzzy-Logik benutzt werden anzunĂ€hern. Neben den strikten Aussagen x â â [ x ] {\displaystyle x\in [x]} und x â [ x ] {\displaystyle x\not \in [x]} sind hier auch Zwischenwerte möglich, denen reelle Zahlen ÎŒ ÎŒ â â [ 0 , 1 ] {\displaystyle \mu \in [0,1]} zugeordnet werden. Dabei entspricht ÎŒ ÎŒ = 1 {\displaystyle \mu =1} der sicheren Zugehörigkeit und ÎŒ ÎŒ = 0 {\displaystyle \mu =0} der Nichtzugehörigkeit. Eine Verteilungsfunktion ordnet jedem dieser Werte einen gewissen Schwankungsbereich zu, den man wieder als Intervall auffassen kann.
[ x ( 1 ) ] â â [ x ( 2 ) ] â â ⯠⯠â â [ x ( k ) ] {\displaystyle \left[x^{(1)}\right]\supset \left[x^{(2)}\right]\supset \cdots \supset \left[x^{(k)}\right]}
angenĂ€hert werden. Dabei entspricht das Intervall [ x ( i ) ] {\displaystyle [x^{(i)}]} genau dem Schwankungsbereich fĂŒr die Stufe ÎŒ ÎŒ i {\displaystyle \mu _{i}} .
Die entsprechende Verteilung fĂŒr eine Funktion f ( x 1 , ⯠⯠, x n ) {\displaystyle f(x_{1},\cdots ,x_{n})} bezĂŒglich unscharfer Werte x 1 , ⯠⯠, x n {\displaystyle x_{1},\cdots ,x_{n}} und den entsprechenden Sequenzen [ x 1 ( 1 ) ] â â ⯠⯠â â [ x 1 ( k ) ] , ⯠⯠, [ x n ( 1 ) ] â â ⯠⯠â â [ x n ( k ) ] {\displaystyle \left[x_{1}^{(1)}\right]\supset \cdots \supset \left[x_{1}^{(k)}\right],\cdots ,\left[x_{n}^{(1)}\right]\supset \cdots \supset \left[x_{n}^{(k)}\right]} lĂ€sst sich dann durch die Intervallsequenz [ y ( 1 ) ] â â ⯠⯠â â [ y ( k ) ] {\displaystyle \left[y^{(1)}\right]\supset \cdots \supset \left[y^{(k)}\right]} approximieren. Die Werte [ y ( i ) ] {\displaystyle \left[y^{(i)}\right]} sind gegeben durch [ y ( i ) ] = f ( [ x 1 ( i ) ] , ⯠⯠[ x n ( i ) ] ) {\displaystyle \left[y^{(i)}\right]=f\left(\left[x_{1}^{(i)}\right],\cdots \left[x_{n}^{(i)}\right]\right)} und können durch Intervallverfahren abgeschĂ€tzt werden. Dabei entspricht [ y ( 1 ) ] {\displaystyle \left[y^{(1)}\right]} dem Ergebnis einer Intervallrechnung.
Geschichtliches
Intervallarithmetik ist keine völlig neue Erscheinung in der Mathematik und tauchte bereits mehrfach unter verschiedenen Namen im Laufe der Geschichte auf. So berechnete Archimedes bereits im 3. Jahrhundert v. Chr. obere und untere Schranken fĂŒr die Kreiszahl Pi. Allerdings wurde das eigentliche Rechnen mit Intervallen nie so populĂ€r wie andere numerische Techniken, wurde aber nie völlig vergessen.
Regeln fĂŒr das Rechnen mit Intervallen und anderen Teilmengen der reellen Zahlen finden sich schlieĂlich in einer 1931 veröffentlichten Arbeit von Rosalind Tanner (Rosalind Cecily Young), einer Doktorandin von Ernest William Hobson an der UniversitĂ€t Cambridge. Arbeiten fĂŒr eine Arithmetik von range numbers (âBereichszahlenâ) in Hinblick auf eine Verbesserung und ZuverlĂ€ssigkeit digitaler Systeme finden sich dann in einem 1951 veröffentlichten Lehrbuch zur linearen Algebra von Paul S. Dwyer (University of Michigan). Hier werden Intervalle tatsĂ€chlich dafĂŒr eingesetzt, die Rundungsfehler bei Gleitkommazahlen abzuschĂ€tzen.
Als Geburtsstunde der modernen Intervallarithmetik wird das Erscheinen des Buches Interval Analysis von Ramon E. Moore im Jahr 1966 (Lit.: Moore) angesehen. Die Idee dazu hatte er im FrĂŒhjahr 1958, und bereits ein knappes Jahr spĂ€ter veröffentlichte er einen Artikel ĂŒber computerunterstĂŒtzte Intervallarithmetik.cite-ref-3[3] Sein Verdienst ist es, dass aus einem einfachen Prinzip eine allgemeingĂŒltige Methode zur automatisierten Fehleranalyse wurde, mit deren Hilfe nicht nur der Einfluss von Rundungen bestimmt werden konnte.
UnabhĂ€ngig davon hatte Mieczyslaw Warmus zwar schon 1956 Formeln fĂŒr das Rechnen mit Intervallen vorgeschlagen,cite-ref-4[4] bei Moore fanden sich aber neben Implementierungshinweisen auch erste nicht-triviale Anwendungen.
In Deutschland hatten sich in den 1960er Jahren Forschergruppen um Karl Nickelcite-ref-5[5] (UniversitĂ€t Karlsruhe; ab 1976: UniversitĂ€t Freiburg), Ulrich Kulisch (Lit.: Kulisch) (UniversitĂ€t Karlsruhe) und Fritz KrĂŒckeberg (Lit.: KrĂŒckeberg) (UniversitĂ€t Bonn; ab 1968: Gesellschaft fĂŒr Mathematik und Datenverarbeitung, Sankt Augustin) etabliert, in denen zahlreiche Diplom- und Doktorarbeitencite-ref-6[6] zu intervallarithmetischen Themen entstanden.
Das erste internationale Symposium ĂŒber Intervallanalysis (Lit.: Hansen) veranstaltete das Oxford University Computing Laboratory im Januar 1968 in Culham, England. Der Tagungsband wurde von Eldon R. Hansen herausgegeben, der auch spĂ€ter sehr aktiv auf dem Gebiet war (Lit.: Hansen, Walster).
Karl Nickel war die Triebfeder hinter fĂŒnf Workshops zur Intervallarithmetik,cite-ref-7[7] die 1968â1976 im mathematischen Forschungsinstitut Oberwolfach stattfanden und wo sich deutschsprachige Forscher ĂŒber ihre Arbeiten austauschten. Er organisierte 1975, 1980 und 1985 (Lit.: Nickel) internationale Symposien zur Intervallmathematik, wobei er den Begriff Intervallmathematik prĂ€gte. Eine Intervallbibliothek, in der Software zur Intervallarithmetik systematisch gesammelt wurde, war in seinem Institut angesiedelt. Von 1978 bis 1987 gab er die Zeitschrift âFreiburger Intervall-Berichteâ heraus. Er war GrĂŒnder und Vorsitzender des GAMM-Ausschuss Intervallmathematik.
Zwei SchĂŒler von Ulrich Kulisch, Götz Alefeld und JĂŒrgen Herzberger, veröffentlichten 1974 das erste deutschsprachige Lehrbuch (Lit.: Alefeld und Herzberger) zur Intervallarithmetik.
Seit den 90ern wird das Journal Reliable Computing (ursprĂŒnglich Interval Computations) herausgegeben, das sich der ZuverlĂ€ssigkeit computerunterstĂŒtzter Berechnungen widmet. Als leitender Redakteur hat R. Baker Kearfott neben seinen Arbeiten zur globalen Optimierung wesentlich zur Vereinheitlichung der Notation und Begrifflichkeiten der Intervallarithmetik beigetragen (Web: Kearfott).
In jĂŒngerer Zeit sind insbesondere die Arbeiten zur AbschĂ€tzung des Urbildes parametrisierter Funktionen und zur robusten Kontrolle von der COPRIN-Arbeitsgruppe des INRIA im französischen Sophia Antipolis zu erwĂ€hnen (Web: INRIA).
Patente
Einer der wesentlichen Förderer der Intervallarithmetik, G. William Walster von Sun Microsystems, hat in den Jahren 2001 bis 2004 â teilweise zusammen mit Ramon E. Moore und Eldon R. Hansen â mehrere Patente im Bereich der Intervallarithmetik beim United States Patent and Trademark Office angemeldet.cite-ref-8[8]cite-ref-9[9] Die GĂŒltigkeit dieser AnsprĂŒche ist jedoch in der Intervallarithmetik-Forschungsgemeinde stark umstritten, da sie möglicherweise lediglich den bisherigen Stand der Technik wiedergeben.
Implementierungen
Es gibt viele Softwarepakete, welche die Entwicklung numerischer Anwendungen unter Nutzung der Intervallarithmetik erlauben.cite-ref-10[10] Diese sind meist in Form von Programmbibliotheken umgesetzt.cite-ref-11[11] Es gibt allerdings auch C++- und Fortran-Ăbersetzer, welche Intervall-Datentypen und entsprechend geeignete Operationen als Spracherweiterungcite-ref-12[12] besitzen, so dass Intervallarithmetik direkt unterstĂŒtzt wird.
Seit 1967 entwickelte man zunĂ€chst an der UniversitĂ€t Karlsruhe XSC-Erweiterungen fĂŒr wissenschaftliches Rechnen (âExtensions for Scientific Computationâ) fĂŒr verschiedene Programmiersprachen, darunter C++, Fortran und Pascal.cite-ref-13[13] Plattform war zunĂ€chst ein Zuse Z 23, fĂŒr den ein neuer Intervall-Datentyp mit entsprechenden elementaren Operatoren zur VerfĂŒgung gestellt wurde.
1976 folgte mit Pascal-SC eine Pascal-Variante auf einem Zilog Z80, die es ermöglichte, schnell komplexe Routinen fĂŒr automatisierte Ergebnisverifikation zu schaffen. Es folgte das Fortran 77-basierte ACRITH-XSC fĂŒr die System/370-Architektur, das spĂ€ter auch von IBM ausgeliefert wird. Ab 1991 kann man mit Pascal-XSC dann Code fĂŒr C-Compiler erzeugen, und ein Jahr spĂ€ter unterstĂŒtzt die C++-Klassenbibliothek C-XSC bereits viele verschiedene Computersysteme. 1997 werden alle XSC-Varianten unter die General Public License gestellt und stehen so frei zur VerfĂŒgung. Anfang der 2000er-Jahre wurde C-XSC 2.0 unter FederfĂŒhrung der Arbeitsgruppe fĂŒr wissenschaftliches Rechnen an der Bergischen UniversitĂ€t Wuppertal neugestaltet, um dem mittlerweile verabschiedeten C++-Standard besser entsprechen zu können.
Eine weitere C++-Klassenbibliothek ist das 1993 an der TU Hamburg-Harburg geschaffene Profil/BIAS (âProgrammerâs Runtime Optimized Fast Interval Library, Basic Interval Arithmeticâ), das die ĂŒblichen Intervalloperationen benutzerfreundlich zur VerfĂŒgung stellt. Dabei wurde besonderen Wert auf die effiziente Ausnutzung der Hardware, PortabilitĂ€t und UnabhĂ€ngigkeit von einer speziellen Intervalldarstellung gelegt.
Heute können auĂerdem die gĂ€ngigen Computeralgebrasysteme, wie Mathematica, Maple und MuPAD, mit Intervallen umgehen. AuĂerdem gibt es fĂŒr Matlab die Erweiterung INTLAB, die auf BLAS-Routinen aufbaut, sowie die Toolbox b4m, die ein Profil/BIAS-Interface zur VerfĂŒgung stellt.cite-ref-15[15]
IEEE-Standard 1788â2015
Ein IEEE-Standard fĂŒr Intervallarithmetik wurde im Juni 2015 veröffentlicht.cite-ref-16[16] Es gibt zwei freie Referenzimplementierungen,cite-ref-17[17] die von Mitgliedern der Arbeitsgruppecite-ref-18[18] entwickelt worden sind: Die libieeep1788cite-ref-19[19]-Bibliothek fĂŒr C++ und das Intervall-Paketcite-ref-20[20] fĂŒr GNU Octave.
Eine vereinfachte Variante des Standards wurde 2017 verabschiedet. Diese soll noch einfacher umzusetzen sein und fĂŒr eine schnellere Verbreitung sorgen.cite-ref-21[21]
Konferenzen und Workshops
Mehrere internationale Konferenzen und Workshops werden jÀhrlich in der ganzen Welt abgehalten. Die wichtigste Konferenz ist SCAN (International Symposium on Scientific Computing, Computer Arithmetic, and Verified Numerical Computation). Daneben gibt es SWIM (Summer Workshop on Interval Methods), PPAM (International Conference on Parallel Processing and Applied Mathematics) und REC (International Workshop on Reliable Engineering Computing).
Siehe auch
Referenzen
Literatur
âą Götz Alefeld, JĂŒrgen Herzberger: EinfĂŒhrung in die Intervallrechnung. (= Informatik, Band 12). Bibliographisches Institut, B.I.-Wissenschaftsverlag, Mannheim / Wien / ZĂŒrich 1974, ISBN 3-411-01466-0.
âą H. Bauch, K.-U. Jahn, D. OelschlĂ€gel, H. SĂŒĂe, V. Wiebigke: Intervallmathematik. BSB Teubner, Leipzig 1987, ISBN 3-322-00384-1.
âą Alexander Dreyer: Interval Analysis of Analog Circuits with Component Tolerances. Doktorarbeit. Shaker Verlag, Aachen 2003, ISBN 3-8322-4555-3.
âą Eldon R. Hansen (Ed.): Topics in Interval Analysis. Symposium on Interval Analysis, Culham, England, 1968. Clarendon Press, Oxford (1969), ISBN 0-1985-3333-0.
âą Eldon Hansen, G. William Walster: Global Optimization using Interval Analysis. 2. ĂŒberarb. Auflage. Marcel Dekker, New York 2004, ISBN 0-8247-4059-9.
âą Hanss, Michael: Applied Fuzzy Arithmetic. 2. Auflage. Springer-Verlag, Berlin Heidelberg, 2010, ISBN 978-3-540-27317-2.
âą L. Jaulin, M. Kieffer, O. Didrit, Ă. Walter: Applied Interval Analysis: With examples in parameter estimation robust control and robotics. Springer, London 2001, ISBN 1-85233-219-0.
âą Fritz KrĂŒckeberg: Intervallanalytische Methoden in der numerischen Datenverarbeitung. In: Der Minister fĂŒr Wissenschaft und Forschung des Landes Nordrhein-Westfalen, Landesamt fĂŒr Forschung, Jahrbuch 1970, Westdeutscher Verlag Opladen (1971).
âą Ulrich Kulisch: Wissenschaftliches Rechnen mit Ergebnisverifikation. Eine EinfĂŒhrung. Vieweg-Verlag, Wiesbaden 1989, ISBN 3-528-08943-1.
âą R. E. Moore: Interval Analysis. Prentice-Hall, Englewood Cliff, NJ 1966, ISBN 0-13-476853-1.
âą Karl Nickel (Ed.): Interval Mathematics: Proceedings of the International Symposium, Karlsruhe, West Germany, May 20-24, 1975. Lecture Notes in Computer Science 29, Springer 1975, ISBN 3-540-07170-9
âą Karl Nickel (Ed.): Interval Mathematics 1980, Academic Press, New York, London, Toronto 1980.
âą Karl Nickel (Ed.): Interval Mathematics 1985: Proceedings of the International Symposium, Freiburg i. Br., Federal Republic of Germany, September 23-26, 1985. Lecture Notes in Computer Science 212, Springer 1986, ISBN 3-540-16437-5
Weblinks
âą Brian Hayes, 'A Lucid Interval', gute EinfĂŒhrung (pdf) (83 kB)
âą Bibliographie von R. Baker Kearfott, University of Louisiana, Lafayette
⹠Bibliographie von Arnold Neumaier, UniversitÀt Wien
âą Intervallrechnung im Lexikon der Mathematik auf Spektrum.de
âą kv auf GitHub
âą arb auf GitHub
âą JuliaIntervals auf GitHub
Quellen
cite-note-11. â Veröffentlichungen von JiĆĂ Rohn (Memento vom 7. September 2007 im Internet Archive)
cite-note-22. â Hanss, Michael: Applied Fuzzy Arithmetic. 2. Auflage. Springer-Verlag, Berlin Heidelberg, 2010, ISBN 978-3-540-27317-2, Kapitel 3.
cite-note-33. â Abhandlung ĂŒber frĂŒhe Artikel von R. E. Moore
cite-note-55. â Nickel obituary
cite-note-66. â Doktoranden Nickel; Kulisch; KrĂŒckeberg
cite-note-77. â Mathematisches Forschungsinstitut Oberwolfach, Tagungsberichte Intervallrechnung 1968; 1969; 1972; 1973; 1976
cite-note-88. â Patent US6842764B2: Minimum and maximum operations to facilitate interval multiplication and/or interval division. Angemeldet am 26. MĂ€rz 2001, veröffentlicht am 11. Januar 2005, Anmelder: Sun Microsystems Inc, Erfinder: William G. Walster.â
cite-note-99. â COCONUT Environment An open source solver platform for global optimization problems. Archiviert vom Original am 31. MĂ€rz 2014; abgerufen am 15. Januar 2023.
cite-note-1010. â Software fĂŒr Intervallrechnungen, zusammengestellt von Vladik Kreinovich (Memento vom 2. MĂ€rz 2006 im Internet Archive), University of Texas, El Paso
cite-note-1111. â Beispiel einer Intervallarithmetik-Klasse in C++ (Memento vom 30. MĂ€rz 2005 im Internet Archive) von Sun Microsystems
cite-note-1212. â C++- und Fortran-Compiler mit IntervallunterstĂŒtzung von Sun Microsystems
cite-note-1313. â Geschichte der XSC-Erweiterungen (Memento vom 29. September 2007 im Internet Archive)
cite-note-1414. â Vorschlag fĂŒr eine Erweiterung der C++-Standards um Intervalle
cite-note-1616. â IEEE Standard for Interval Arithmetic
cite-note-1717. â Revol, Nathalie (2015). The (near-)future IEEE 1788 standard for interval arithmetic. 8th small workshop on interval methods. Foliensatz (PDF, englisch)
cite-note-1818. â IEEE Interval Standard Working Group - P1788
cite-note-1919. â C++ implementation of the preliminary IEEE P1788 standard for interval arithmetic
cite-note-2020. â GNU Octave interval package
cite-note-2121. â IEEE 1788.1-2017: IEEE Standard for Interval Arithmetic (Simplified). IEEE, archiviert vom Original (nicht mehr online verfĂŒgbar) am 7. Februar 2022; abgerufen am 1. Mai 2023. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprĂŒft. Bitte prĂŒfe Original- und Archivlink gemÀà Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/standards.ieee.org